home *** CD-ROM | disk | FTP | other *** search
/ BMUG Revelations / BMUG Revelations.toast / Programming / Programming Languages / Harvest C / MPW Int & Lib / Interfaces / OSUtils.h < prev    next >
Text File  |  1991-04-17  |  7KB  |  262 lines

  1. /************************************************************
  2.  
  3. Created: Sunday, January 6, 1991 at 9:34 PM
  4.     OSUtils.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.         Copyright Apple Computer, Inc.    1985-1990
  9.         All rights reserved
  10.  
  11. ************************************************************/
  12.  
  13.  
  14. #ifndef __OSUTILS__
  15. #define __OSUTILS__
  16.  
  17. #ifndef __TYPES__
  18. #include <Types.h>
  19. #endif
  20.  
  21.  
  22. enum {
  23.  
  24.     useFree = 0,
  25.     useATalk = 1,
  26.     useAsync = 2,
  27.     useExtClk = 3,      /*Externally clocked*/
  28.     useMIDI = 4,
  29.  
  30. /**** Environs Equates ****/
  31.     curSysEnvVers = 2,  /*Updated to equal latest SysEnvirons version*/
  32.  
  33. /* Machine Types */
  34.     envMac = -1,
  35.     envXL = -2,
  36.     envMachUnknown = 0,
  37.     env512KE = 1,
  38.     envMacPlus = 2,
  39.     envSE = 3,
  40.     envMacII = 4,
  41.     envMacIIx = 5,
  42.     envMacIIcx = 6,
  43.     envSE30 = 7,
  44.     envPortable = 8,
  45.     envMacIIci = 9,
  46.     envMacIIfx = 11,
  47.  
  48. /* CPU types */
  49.     envCPUUnknown = 0
  50. };
  51. enum {
  52.     env68000 = 1,
  53.     env68010 = 2,
  54.     env68020 = 3,
  55.     env68030 = 4,
  56.     env68040 = 5,
  57.  
  58. /* Keyboard types */
  59.     envUnknownKbd = 0,
  60.     envMacKbd = 1,
  61.     envMacAndPad = 2,
  62.     envMacPlusKbd = 3,
  63.     envAExtendKbd = 4,
  64.     envStandADBKbd = 5,
  65.     envPrtblADBKbd = 6,
  66.     envPrtblISOKbd = 7,
  67.     envStdISOADBKbd = 8,
  68.     envExtISOADBKbd = 9,
  69.     false32b = 0,       /*24 bit addressing error*/
  70.     true32b = 1,        /*32 bit addressing error*/
  71.  
  72. /* result types for RelString Call */
  73.     sortsBefore = -1,   /*first string < second string*/
  74.     sortsEqual = 0,     /*first string = second string*/
  75.     sortsAfter = 1      /*first string > second string*/
  76. };
  77.  
  78.  
  79. enum {dummyType,vType,ioQType,drvQType,evType,fsQType,sIQType,dtQType};
  80. typedef unsigned short QTypes;
  81.  
  82. enum {OSTrap,ToolTrap};
  83. typedef unsigned char TrapType;
  84.  
  85.  
  86. struct SysParmType {
  87.     char valid;
  88.     char aTalkA;
  89.     char aTalkB;
  90.     char config;
  91.     short portA;
  92.     short portB;
  93.     long alarm;
  94.     short font;
  95.     short kbdPrint;
  96.     short volClik;
  97.     short misc;
  98. };
  99.  
  100. typedef struct SysParmType SysParmType;
  101. typedef SysParmType *SysPPtr;
  102.  
  103. struct QElem {
  104.     struct QElem *qLink;
  105.     short qType;
  106.     short qData[1];
  107. };
  108.  
  109. typedef struct QElem QElem;
  110. typedef QElem *QElemPtr;
  111.  
  112. struct QHdr {
  113.     short qFlags;
  114.     QElemPtr qHead;
  115.     QElemPtr qTail;
  116. };
  117.  
  118. typedef struct QHdr QHdr;
  119. typedef QHdr *QHdrPtr;
  120.  
  121. struct DateTimeRec {
  122.     short year;
  123.     short month;
  124.     short day;
  125.     short hour;
  126.     short minute;
  127.     short second;
  128.     short dayOfWeek;
  129. };
  130.  
  131. typedef struct DateTimeRec DateTimeRec;
  132.  
  133. struct SysEnvRec {
  134.     short environsVersion;
  135.     short machineType;
  136.     short systemVersion;
  137.     short processor;
  138.     Boolean hasFPU;
  139.     Boolean hasColorQD;
  140.     short keyBoardType;
  141.     short atDrvrVersNum;
  142.     short sysVRefNum;
  143. };
  144.  
  145. typedef struct SysEnvRec SysEnvRec;
  146.  
  147.  
  148. #ifdef __cplusplus
  149. extern "C" {
  150. #endif
  151. #define GetSysPPtr() ((SysPPtr) 0x01F8)
  152. pascal void SysBeep(short duration)
  153.     = 0xA9C8; 
  154. pascal long KeyTrans(const void *transData,short keycode,long *state)
  155.     = 0xA9C3; 
  156. #pragma parameter __D0 DTInstall(__A0)
  157. pascal OSErr DTInstall(QElemPtr dtTaskPtr)
  158.     = 0xA082; 
  159. #define GetMMUMode() (* (char*) 0x0CB2)
  160. #pragma parameter SwapMMUMode(__A0)
  161. pascal void SwapMMUMode(char *mode)
  162.     = {0x1010,0xA05D,0x1080}; 
  163. #if SystemSixOrLater
  164. #pragma parameter __D0 SysEnvirons(__D0,__A0)
  165. pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld)
  166.     = 0xA090; 
  167. #else
  168. pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld);
  169. #endif
  170. #pragma parameter __D0 ReadDateTime(__A0)
  171. pascal OSErr ReadDateTime(unsigned long *time)
  172.     = 0xA039; 
  173. #pragma parameter GetDateTime(__A0)
  174. pascal void GetDateTime(unsigned long *secs)
  175.     = {0x20B8,0x020C}; 
  176. #pragma parameter __D0 SetDateTime(__D0)
  177. pascal OSErr SetDateTime(unsigned long time)
  178.     = 0xA03A; 
  179. #pragma parameter SetTime(__A0)
  180. pascal void SetTime(const DateTimeRec *d)
  181.     = {0xA9C7,0xA03A}; 
  182. #pragma parameter GetTime(__A0)
  183. pascal void GetTime(DateTimeRec *d)
  184.     = {0x2038,0x020C,0xA9C6}; 
  185. pascal void Date2Secs(const DateTimeRec *d,unsigned long *secs); 
  186. #pragma parameter Secs2Date(__D0,__A0)
  187. pascal void Secs2Date(unsigned long secs,DateTimeRec *d)
  188.     = 0xA9C6; 
  189. #pragma parameter Delay(__A0,__A1)
  190. pascal void Delay(long numTicks,long *finalTicks)
  191.     = {0xA03B,0x2280}; 
  192. #pragma parameter __A0 GetTrapAddress(__D0)
  193. pascal long GetTrapAddress(short trapNum)
  194.     = 0xA146; 
  195. #pragma parameter SetTrapAddress(__A0,__D0)
  196. pascal void SetTrapAddress(long trapAddr,short trapNum)
  197.     = 0xA047; 
  198. pascal long NGetTrapAddress(short trapNum,TrapType tTyp); 
  199. pascal void NSetTrapAddress(long trapAddr,short trapNum,TrapType tTyp); 
  200. #pragma parameter __A0 GetOSTrapAddress(__D0)
  201. pascal long GetOSTrapAddress(short trapNum)
  202.     = 0xA346; 
  203. #pragma parameter SetOSTrapAddress(__A0,__D0)
  204. pascal void SetOSTrapAddress(long trapAddr,short trapNum)
  205.     = 0xA247; 
  206. #pragma parameter __A0 GetToolTrapAddress(__D0)
  207. pascal long GetToolTrapAddress(short trapNum)
  208.     = 0xA746; 
  209. #pragma parameter SetToolTrapAddress(__A0,__D0)
  210. pascal void SetToolTrapAddress(long trapAddr,short trapNum)
  211.     = 0xA647; 
  212. #pragma parameter __A0 GetToolboxTrapAddress(__D0)
  213. pascal long GetToolboxTrapAddress(short trapNum)
  214.     = 0xA746; 
  215. #pragma parameter SetToolboxTrapAddress(__A0,__D0)
  216. pascal void SetToolboxTrapAddress(long trapAddr,short trapNum)
  217.     = 0xA647; 
  218. pascal OSErr WriteParam(void); 
  219. pascal Boolean EqualString(ConstStr255Param str1,ConstStr255Param str2,
  220.     Boolean caseSens,Boolean diacSens); 
  221. Boolean equalstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens); 
  222. pascal void UprString(Str255 theString,Boolean diacSens); 
  223. void uprstring(char *theString,Boolean diacSens); 
  224. #pragma parameter Enqueue(__A0,__A1)
  225. pascal void Enqueue(QElemPtr qElement,QHdrPtr qHeader)
  226.     = 0xA96F; 
  227. #pragma parameter __D0 Dequeue(__A0,__A1)
  228. pascal OSErr Dequeue(QElemPtr qElement,QHdrPtr qHeader)
  229.     = 0xA96E; 
  230. long SetCurrentA5(void)
  231.     = {0x200D,0x2A78,0x0904}; 
  232. #pragma parameter __D0 SetA5(__D0)
  233. long SetA5(long newA5)
  234.     = 0xC18D; 
  235. pascal void Environs(short *rom,short *machine); 
  236. pascal short RelString(ConstStr255Param str1,ConstStr255Param str2,Boolean caseSens,
  237.     Boolean diacSens); 
  238. short relstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens); 
  239. pascal OSErr HandToHand(Handle *theHndl); 
  240. #pragma parameter __D0 PtrToXHand(__A0,__A1,__D0)
  241. pascal OSErr PtrToXHand(const void *srcPtr,Handle dstHndl,long size)
  242.     = 0xA9E2; 
  243. pascal OSErr PtrToHand(const void *srcPtr,Handle *dstHndl,long size); 
  244. #pragma parameter __D0 HandAndHand(__A0,__A1)
  245. pascal OSErr HandAndHand(Handle hand1,Handle hand2)
  246.     = 0xA9E4; 
  247. #pragma parameter __D0 PtrAndHand(__A0,__A1,__D0)
  248. pascal OSErr PtrAndHand(const void *ptr1,Handle hand2,long size)
  249.     = 0xA9EF; 
  250. #pragma parameter __D0 InitUtil
  251. pascal OSErr InitUtil(void)
  252.     = 0xA03F; 
  253. pascal Boolean SwapInstructionCache(Boolean cacheEnable); 
  254. pascal void FlushInstructionCache(void); 
  255. pascal Boolean SwapDataCache(Boolean cacheEnable); 
  256. pascal void FlushDataCache(void); 
  257. #ifdef __cplusplus
  258. }
  259. #endif
  260.  
  261. #endif
  262.